Tracking contacts across multiple communications services

ABSTRACT

A method for tracking at least recent contacts and favorite contacts across multiple communications services may include collecting, by a processor, information associated with a plurality of contact interactions of a user from each of a set of different communications services utilized by the user. The method may also include storing, by a storage device, the information associated with each of the plurality of contact interactions. The method may additionally include analyzing the information associated with each of the plurality of contact interactions. The method may further include determining at least one of a list of most recent contacts and a list of favorite contacts from analyzing the information associated with each of the plurality of contact interactions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 13/788,390, filed Mar. 7, 2013 the contents ofwhich are incorporated herein by reference in its entirety.

BACKGROUND

Aspects of the present invention relate to communications services,systems, social networks and the like, and more particularly to trackingat least recent and favorite contacts across multiple services,communications systems or social networks.

There are numerous communications services, communications systems,communications networks or social networks for communications betweenusers, such as email, instant messaging (IM), chat, online forums, LotusNotes®, Sametime®, IBM Connections, Facebook®, LinkedIn® or similarcommunications systems, networks or services. Lotus Notes® and Sametime®are trademarks of the Lotus Development Corporation in the UnitedStates, other countries or both. IBM Connections is a trademark ofInternational Business Machines Corporation in the United States, othercountries or both. Facebook® is a trademark of Facebook, Inc. in theUnited States, other countries or both. LinkedIn® is a trademark ofLinkedIn Ltd. in the United States, other countries or both. Each ofthese systems or services typically include an arrangement for storingand maintaining a list of contacts or to permit users to save a list ofcontacts or addresses that the user expects to contact or communicatewith on a recurring basis within the particular system or service. Thecontacts or list of contacts are proprietary or exclusive to aparticular system or service and may be tracked only within theparticular communications service or system. A user would typically berequired to manually copy contacts from one service or system toanother. Contacts for the same person or user may also be different fromone service or system to another. Additionally, users typically utilizemore than one such system or service. Tracking and analyzing contactsacross multiple services or systems that may be utilized by a userpresents substantial complexities that need to be overcome.

BRIEF SUMMARY

According to an aspect of the present invention, a method for trackingat least recent contacts and favorite contacts across multiplecommunications services may include collecting, by a processor,information associated with a plurality of contact interactions of auser from each of a set of different communications services utilized bythe user. The method may also include storing, by a storage device, theinformation associated with each of the plurality of contactinteractions. The method may additionally include analyzing theinformation associated with each of the plurality of contactinteractions. The method may further include determining at least one ofa list of most recent contacts and a list of favorite contacts fromanalyzing the information associated with each of the plurality ofcontact interactions.

According to another aspect of the present invention, a system fortracking at least recent contacts and favorite contacts across multiplecommunications services may include a processor and a module operatingon the processor for collecting information associated with a pluralityof contact interactions of a user from each of a set of differentcommunications services utilized by the user. The system may alsoinclude a storage device for storing the information associated witheach of the plurality of contact interactions. The system mayadditionally include a module for analyzing the information associatedwith each of the plurality of contact interactions. The system mayfurther include a module for determining at least one of a list of mostrecent contacts and a list of favorite contacts from analyzing theinformation associated with each of the plurality of contactinteractions.

According to a further aspect of the present invention, a computerprogram product for tracking at least recent contacts and favoritecontacts across multiple communications services may include a computerreadable storage medium having computer readable program code embodiedtherewith. The computer readable program code may include computerreadable program code configured to collect information associated witha plurality of contact interactions of a user from each of a set ofdifferent communications services utilized by the user. The computerreadable program code may also include computer readable program codeconfigured to store the information associated with each of theplurality of contact interactions, and computer readable program codeconfigured to analyze the information associated with each of theplurality of contact interactions. The computer readable program codemay further include computer readable program code configured todetermine at least one of a list of most recent contacts and a list offavorite contacts from analyzing the information associated with each ofthe plurality of contact interactions.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present invention is further described in the detailed descriptionwhich follows in reference to the noted plurality of drawings by way ofnon-limiting examples of embodiments of the present invention in whichlike reference numerals represent similar parts throughout the severalviews of the drawings and wherein:

FIG. 1 is a flow chart of an example of a method for tracking at leastrecent and favorite contacts across multiple communications services inaccordance with an embodiment of the present invention.

FIGS. 2A, 2B and 2C are each an example of a graphical user interfacerepresenting a network of the user based on the contacts lists inaccordance with the present invention.

FIG. 3 is a block schematic diagram of an example of a system fortracking at least recent and favorite contacts across multiplecommunications services in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

In accordance with an embodiment of the present invention, a system fortracking at least recent contacts and favorite contacts may include amechanism for gathering or collecting information associated with aplurality of contact interactions or usage across multiplecommunications services, a mechanism for analyzing the information orusage, and a mechanism for providing the results of the analysis in amanner which is usable. As used herein a communications service mayinclude but is not necessarily limited to communications systems,communications networks or social networks for communications betweenusers, such as email, IM, chart, online forums, Lotus Notes®, Sametime®,IBM Connections, Facebook®, LinkedIn® or similar communications systems,networks or services.

Examples of uses of the results of the analysis of the informationassociated with the contact interactions or usage may include, but isnot necessarily limited to: providing at least a list of recent contactsand a list of favorite contacts; a typeahead feature that completes asequence of possible alphanumeric characters and presents one or morepossible contacts for selection by the user; providing a graphical userinterface (GUI) displaying a user's network of contacts or socialnetworks for each communications service or a combined representation ofthe user's networks or social networks; and any other practicalapplications of the contact lists across the multiple communicationsservices resulting from the analysis of the information. The favoritecontact list may be a list of contacts that the user communicates withat least a predetermined number of times over a preset time period. Thetypeahead feature may also be described as providing high-speed searchresults based off a partial query while the user is typing in agraphical user interface (GUI), such as an address field of acommunications service application.

Examples of mechanisms for gathering information related to contactinteractions may include posting information associated with eachcontact interaction to the system, batching multiple contactinteractions, pull/push of contact information from/to the system. Thesystem may maintain an database of contact activity across the multiplecommunications services using either proprietary or standard mechanismsfor gathering the information associated with the contact interactionsor usage.

The mechanism for analyzing the information leverages this data tocompute derived contact lists which may include a list of recently usedcontacts of the user and a list of most commonly used contacts over time(favorite contacts). These lists may be updated either real-time orperiodically based on new incoming contact interaction information fromthe collecting mechanism.

The mechanism for providing the results of the analysis may provide thedata or contacts lists through either or both a GUI and programmaticinteraction, such as an application programming interface (API). The GUImay provide simple capability such as typeahead against this listsimilar to that previously described, or more advanced capability suchas network visualization. The API may be used by other products orcommunications applications of the user to enhance the contact listingof people associated with these other services or applications. In thisrespect, a more accurate selection list of people or contacts may beprovided among the various communications services or applications ofthe user. The API may also track activity across a user's aggregatedlist of either recent or favorite contacts or both.

Advantages of the system, method and computer program product describedherein provide an improvement in the advantages gained by asingle-system of recent and favorite contacts. Such capabilities in thecontext of a single service/system/product may provide a user with asmaller list from which to choose contacts for most interactions as wellas being able to better tune capabilities such as activity logs, expertlocation or network analysis across a user's contacts. The collectionand analysis across multiple products or communications services mayprovide a more accurate and consistent list of contacts. Thisconsistency may be of value in that one is more likely to email not onlysomeone who has emailed recently, but also someone with whom a user haschatted with recently, for example.

FIG. 1 is a flow chart of an example of a method 100 for tracking atleast one of recent and favorite contacts across multiple communicationsservices in accordance with an embodiment of the present invention. Inblock 102, information associated with a plurality of contactinteractions of a user may be collected from each of a set of differentcommunications type services utilized by the user. One or moremechanisms may be provided for gathering information associated with thecontact interactions from the set of services. What constitutes acontact interaction or criteria for collecting the information may bedetermined either by the particular communications service that is thesource of the contact interaction information or a system that analyzesthe information associated with each contact interaction. For example,receiving an email addressed directly to the user might represent acontact interaction for purposed of collecting the information, butbeing a copied or cc'ed recipient on an email may not be considered as acontact interaction for purposes of collecting the informationassociated therewith. Accordingly, collecting the information associatedwith each of the plurality of contact interactions may includecollecting the information in response to a message associated with thecontact interaction being directly addressed to the user or directlyaddressed by the user to at least one other user.

There are numerous mechanisms for gathering or collecting the contactinteraction information from a source of the contact interactioninformation. For example, the information may be collected per event orcontact interaction (each interaction) or on a batch basis or groups ofinteractions. The contact interactions may be grouped based onexpiration of each prescheduled time period or after a present number ofcontact interactions occur.

The contact interaction information may also be collected or transmittedto a system that at least one of stores and analyzes the information ona pull versus push arrangement. For example, the source of the contactinteraction information may invoke a mechanism for sending informationto the system for storage and analysis or the system may invoke amechanism for pulling or requesting the information from the source. Themechanism for collecting the contact interaction information may also beproprietary or standard mechanism for collecting the information. Theproprietary mechanism may be exclusive to the communications service orsource of the contact interaction information and may not be universallyapplicable over other services or sources. A standard mechanism mayallow easier integration of additional systems or communicationsservices provided by other vendors.

Accordingly, in one aspect of the invention, collecting the informationassociated with the plurality of contact interactions may includetransmitting the information associated with each of the plurality ofcontact interactions to a system that at least one of stores andanalyzes the information associated with each of the plurality ofcontact interactions each time one of the plurality of contactinteractions occurs.

In accordance with another aspect of the invention, collecting theinformation associated with the plurality of contact interactions mayinclude transmitting the information associated with each of theplurality of contact interactions to the system that at least one ofstores and analyzes the information after each of a preset number of theplurality of contact interactions occurs.

In accordance with a further aspect of the invention, collecting theinformation associated with the plurality of contact interactions mayinclude transmitting the information associated with each of theplurality of contact interactions to the system that at least one ofstores and analyzes the information after expiration of a prescheduledtime period. Collecting the information associated with the plurality ofcontact interactions may additionally include transmitting theinformation associated with each of the plurality of contactinteractions to the system in response to a preset number of theplurality of contact interactions occurring before expiration of eachprescheduled time period.

An exemplary implementation of the method 100 or system may provide botha pull and push mechanism. The pull mechanism may be based on a standardfeed format such as Rich Site Summary (RSS) and the push mechanism maybe based on an Extensible Mark-up Language (XML) file. The push and pullmechanism may be done on a scheduled basis. For example, a pull functionmay occur or the system may request or pull any accumulated informationassociated with contact interactions from the source at prescheduledtime intervals, for instance every hour or some other practical timeinterval. A push operation or transmission of information by the sourceof the contact interaction information may occur in response to a presetnumber of interactions being available for pushing or transmitting tothe system for analysis. The method 100 or system may therefore have ascheduling system and administration mechanism to set up contact sourcesand schedule pull events. The system may also provide a set of API entrypoints, for example Representational State Transfer (REST)-basedHypertext Transport Protocol (HTTP) APIs, to allow source systems topush their interactions either individually or in bulk to the system ordatabase.

In block 104, the information associated with each contact interactionmay be stored on a database. The database may be associated with thesource of the contact interactions or the system that analyzes thecontact interaction information. The information associated with each ofthe plurality of contact interactions collected and stored may includeat least one of a username or identification of the user and at leastone other user or participant associated with the contact interaction.Other information or metadata in addition to the username oridentification information may also be collected and stored. Examples ofother information that may be collected and stored that may beassociated with each of the plurality of contact interactions mayinclude, but is not necessarily limited to, a time of the contactinteraction, an initiator of the contact interaction, a type of contactinteraction, identification of other participants in the contactinteraction and any other information that may be desirable in trackingand analyzing the contact interactions or usage of the differentcommunications services of the user. The type of contact interaction maybe the type of communications service used for the interaction, suchemail, instant messaging (IM), chat, forum, Facebook®, LinkedIn®, etc.or other type communications service. Accordingly, the database mayinclude a list of user-to-user interactions and additional metadataassociated with each contact interaction. This information may be storedin a relational database (RDB) or a non-relational database.

A user may have different usernames or identifications on the differentservices. Accordingly, different usernames or IDs of the same person mayneed to be correlated across the different services. Correlation betweenthe usernames or IDs and a particular user or contact may be determinedor requested from a particular user when the user registers with thesystem. For example, the user may need to associate a commonidentification used across all communications services with a usernameor ID used with this particular communications service. Examples of acommon identification may include but is not necessarily limited to atleast one of a last name and a first name, an electronic address orelectronic ID.

In block 106, the contact interactions information may be analyzed. Theanalysis may determine at least one of a list of recent contacts 108 anda list of favorite contacts 110 or other relationships between user andother users or contacts of the user across the multiple communicationsservices. The list of recent contacts may include all contactinteractions by the user over a preceding, defined period of time. Thelist of favorite contacts may be the most frequent or a number ofcontact interactions with a particular other user that exceeds apredetermined threshold over a preset time period. Both lists representa set of users which the target user most frequently interacts with. Thelist of recent contacts is heavily influenced by time (only thoseinteractions in a particular configurable time period—perhaps a week,for example) and less influenced by the number of interactions. The listof favorite contacts may be analyzed over a longer time period, forexample 6 months, and is more heavily influenced by number ofinteractions. The specific criteria for being on the favorites list maybe tuned. For example, favorite contacts may a predetermined number ofcontact interactions over a preset time period, for example, require 20interactions over 6 months, with at least one interaction in each monthor other criteria.

The analysis could be performed at the time the contacts lists arerequested. In another embodiment the analysis may be performed and thelists updated periodically. Queries may then be applied to thepreviously computed results. The periodic updating may be done on ascheduled basis or the analysis may be performed dynamically when thelast computed results are older than a threshold time period, forexample, if older than an hour. Accordingly, the list of most recentcontacts may be re-determined after expiration of a preset time period.In further embodiment the analysis may be performed and the listsupdated on a continuous basis, such as for example each time acommunication or contact interaction occurs.

In block 112, the results of the analysis in block 106 may be used oraccessed. One example of a use of the results of the analysis mayinclude presenting a possible contact (addressee) from a partial querywhile the user is entering the contact in a GUI using a typeaheadfeature that accesses the recent and favorite contacts lists. Otherpossible uses may include displaying the recent contacts list inresponse to a request by the user and displaying the current favoriteslist in response to a request. A GUI may also be displayed showing asocial network or networks of the user based on each of the contactslists. Examples of GUIs representing different networks or socialnetworks based on the contacts lists are illustrated in FIGS. 2A, 2B and2C. Referring also to FIGS. 2A, 2B and 2C, FIG. 2A may represent anexample of a social network 200 of the users recent contacts and FIG. 2Bmay represent an example of a social network 202 of the users favoritecontacts. An indication 204 may also be displayed in the favoritecontacts network 202 of the number of contact interactions associatedwith each contact during a preset time period. In the exampleillustrated in FIG. 2B the indication is the number of contactinteractions associated with each contact. In another embodiment, thenumber of contact interactions may be represented by a size of theparticular symbol corresponding to each contact. Accordingly, a contactwith more contact interactions would be larger than a contact with fewercontact interactions and the size of the symbol for a particular contactwould be based on the number contact interactions relative to othercontacts in the network representation 202.

FIG. 2C may represent an example of a social network 206 including acombination of both the user's recent and favorite contacts. Anyduplicate contacts in both contacts lists may only be represented once.In FIG. 2C, the recent contacts, favorite contacts and contacts in bothlists may be distinguished from one another. For example, the recentcontacts may be displayed in a first color and/or shape, the favoritecontacts may be displayed in a second color and/or shape and thecontacts that are in both the recent and favorite contacts list may bedisplayed in a third color and/or shape. The exemplary social network206 illustrated in FIG. 2C illustrates the different types of contactsby different symbols.

Referring back to FIG. 1, in block 114, either of the contacts lists maybe filtered based on a predetermined criterion. For example, the list ofmost recent contacts and the list of favorite contacts may be filteredbased on the source of the contact interaction information or based onthe communications service that generated the contact interactioninformation. The contact lists may also be filtered based on a timeframe or range of dates that may be entered in a GUI or other mechanism,a number of contact interactions greater than a predetermined numberentered into the GUI or may be filtered based on any other criteria. Aweighting for a particular service or system may also be entered in aGUI for filtering the contact interaction information based on theservice.

FIG. 3 is a block schematic diagram of an example of a system 300 fortracking at least recent and favorite contacts across multiplecommunications services in accordance with an embodiment of the presentinvention. The method 100 and other exemplary features described hereinwith reference to FIGS. 1 and 2A-2C may be embodied in or performed bythe system 300 or components of the system 300 as described below. Thesystem 300 may include a computer system 302 for use by a user 304 fortracking the contact interaction and performing the other features oroperations similar to those described herein. The computer system 302may be any type of computer device capable of performing the functionsor operations described herein.

The computer system 302 may include a processor 306 to control operationof the computer system 302 and a file system 308, memory or similar datastorage device. An operating system 310 may be stored on the file system308 for running or operating on the processor 306. A communications appor application 312 may be stored on the file system 308 for operation onthe processor 306. The communications app 312 may operate in associationwith a communications service similar to that described herein, such asemail, IM, chat, a social network (Facebook®, LinkedIn®, etc.) or othertype communications service for which contacts may desirably be trackedsimilar to that described herein.

In accordance with an embodiment of the present invention, thecommunications app may include a module 314 to collect or gatherinformation associated with contact interactions similar to thatdescribed herein. In another embodiment, the module 314 to collectcontact interactions information may be a separate component from thecommunications app 312.

A module 316 to analyze the collected contact interaction informationand a module 318 to utilize the results of the analysis of the contactinteraction information may also be stored on the file system 308 foroperation on the processor 306 to perform the functions and operationsdescribed herein. The module 316 to analyze the collected contactinteraction information may perform operations similar to thosedescribed with respect to block 106 in FIG. 1. Block 106 may be embodiedin the module 316 and may generate at least a recent contacts list 108and a favorites contacts list 110. The module 318 to utilize the resultsof the analysis may perform operations similar to those described withrespect to block 112 in FIG. 1. Block 112 may be embodied in the module318. Other applications 320, software programs or the like may also bestored on the file system 308 for operation on the processor 306. A webor Internet browser 322 may also be stored on the file system 308 foraccessing one or more resources, such as a server 324 via the network326. The server 324 may host a communications service or system orsocial network as defined herein. The network 326 may be the Internet,intranet or other network.

In accordance with an embodiment, the server 324 or processing devicemay include a module 328 to collect contact interactions information.The module 328 to collect contact interactions information may be thesame as the module 314 on computer system 302. The module 328 to collectcontact interactions information on the server 324 may be provided inaddition to the module 314 on the computer system 302. In anotherembodiment, only the module 328 on the server 324 may be provided, suchas in a cloud computing environment or similar arrangement. The module328 would then be accessed via the network 326 using the browser 322 ofthe computer system or computing device 302. In a further embodiment,where both modules 314 and 328 are provided, module 314 on the computersystem 302 may perform some of the operations described herein and themodule 328 on the server 324 may perform other functions in coordinationwith the module 314.

In accordance with an embodiment of the present invention, a module 330to analyze the contact interactions information and a module 332 toutilize the results of the analysis may be provided on the server 324.The analysis module 330 and utilization module 332 may be the same asmodules 316 and 318, respectively, on the computer device 302 and mayperform substantially the same functions. The analysis module 330 on theserver 324 may be provided instead of the module 316 on the computerdevice 302 or both modules may be provided and may operate incoordination with one another to perform the analysis operations andgenerate the results (recent contacts list, favorites contacts list,etc.) described herein.

The computer system 302 may also include a display 334 for presentinguser interfaces, graphical displays as well as other content asdescribed herein. The computer system 302 may also include a speakersystem 336 for presenting any audio content. The computer system 302 mayadditionally include a microphone 338 for the user 304 to aurallycommunicate via the computer system 302 or control the computer system302 via voice commands.

The computer system 302 may further include one or more input devices,output devices or combination input/output devices, collectively I/Odevices 340. The I/O devices 340 may include a keyboard, pointingdevice, such as a mouse or other computer pointing device, disk drivesand any other devices to permit a user, such as user 304, to interfacewith and control operation of the computer system 302 and networkresources, such as server 324. The modules 312, 316 and 318 and otherapplications 320 may be loaded on the computer system 302 from acomputer program product, such as computer program product 342 using oneof the input devices 340. The computer program product 342 or a similarcomputer program product may also be used to load the modules 328, 330and 332 on the server 324. The computer program product 342 may beembodied in a form similar that previously described.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems which perform the specified functions or acts, or combinationsof special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of embodiments ofthe invention. As used herein, the singular forms “a”, “an” and “the”are intended to include the plural forms as well, unless the contextclearly indicates otherwise. It will be further understood that theterms “comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to embodiments of the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of embodiments ofthe invention. The embodiment was chosen and described in order to bestexplain the principles of embodiments of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand embodiments of the invention for various embodiments withvarious modifications as are suited to the particular use contemplated.

Although specific embodiments have been illustrated and describedherein, those of ordinary skill in the art appreciate that anyarrangement which is calculated to achieve the same purpose may besubstituted for the specific embodiments shown and that embodiments ofthe invention have other applications in other environments. Thisapplication is intended to cover any adaptations or variations of thepresent invention. The following claims are in no way intended to limitthe scope of embodiments of the invention to the specific embodimentsdescribed herein.

1. A method for tracking at least recent contacts and favorite contactsacross multiple communications services, the method comprising:collecting, by a processor, information associated with a plurality ofcontact interactions of a user from each of a set of differentcommunications services utilized by the user; storing, by a storagedevice, the information associated with each of the plurality of contactinteractions; analyzing the information associated with each of theplurality of contact interactions; and determining at least one of alist of most recent contacts and a list of favorite contacts fromanalyzing the information associated with each of the plurality ofcontact interactions.
 2. The method of claim 1, wherein collecting theinformation associated with each of the plurality of contactinteractions is based on a predetermined criteria, and wherein thepredetermined criteria is determined by one of a source of theinformation associated with the contact interactions or a system thatanalyzes the information associated with the contact interactions. 3.The method of claim 1, wherein collecting the information associatedwith each of the plurality of contact interactions comprises collectingthe information in response to a message associated with the contactinteraction being directly addressed to the user or directly addressedby the user to at least one other user, the information associated witheach of the plurality of contact interactions comprising at least one ofa username and identification of the user and the at least one otheruser.
 4. The method of claim 3, wherein the information associated witheach of the plurality of contact interactions further comprises a timeof the contact interaction, an initiator of the contact interaction, atype of contact interaction and identification of other participants inthe contact interaction.
 5. The method of claim 1, wherein collectingthe information associated with the plurality of contact interactionscomprises transmitting the information associated with each of theplurality of contact interactions to a system that at least one ofstores and analyzes the information associated with each of theplurality of contact interactions each time one of the plurality ofcontact interactions occurs.
 6. The method of claim 1, whereincollecting the information associated with the plurality of contactinteractions comprises transmitting the information associated with eachof the plurality of contact interactions to a system that at least oneof stores and analyzes the information after each of a preset number ofthe plurality of contact interactions occurs.
 7. The method of claim 1,wherein collecting the information associated with the plurality ofcontact interactions comprises transmitting the information associatedwith each of the plurality of contact interactions to a system that atleast one of stores and analyzes the information after expiration of aprescheduled time period.
 8. The method of claim 7, wherein collectingthe information associated with the plurality of contact interactionscomprises transmitting the information associated with each of theplurality of contact interactions to a system that at least one ofstores and analyzes the information in response to a preset number ofthe plurality of contact interactions occurring before expiration ofeach prescheduled time period.
 9. The method of claim 1, whereincollecting the information associated with the plurality of contactinteractions comprises transmitting the information associated with eachof the plurality of contact interactions to a system that at least oneof stores and analyzes the information in response to the systemrequesting the information.
 10. The method of claim 1, furthercomprising correlating different user names and differentidentifications utilized by a user on the set of differentcommunications services.
 11. The method of claim 1, wherein determiningthe list of favorite contacts comprises determining a number of contactinteractions over a preset time period, a favorite contact exceeding athreshold number of contact interactions during the preset time period.12. The method of claim 1, further comprising re-determining the list ofmost recent contacts after expiration of a preset time period.
 13. Themethod of claim 1, further comprising displaying a possible contact froma partial query while the user is entering a contact using at least oneof the list of most recent contacts and the list of favorite contacts.14. The method of claim 1, further comprising allowing filtering of thelist of most recent contacts and the list of favorite contacts based onthe communications service.
 15. The method of claim 14, wherein allowingthe filtering comprising allowing a weighting to be assigned to eachcommunications service. 16.-20. (canceled)